/**
 * 命令模式(Command Pattern)是一种数据驱动的设计模式，请求以命令的形式包裹在对象中，并传给调用对象。 调用对象寻找可以处理该命令的合适的对象，并把该命令传给相应的对象，该对象执行命令。
 */
package yyl.example.design_pattern.behavioral.command;

// 模式中角色
// (1)抽象命令(Command)：定义命令的接口，声明执行的方法。
// (2)具体命令(ConcreteCommand)：具体命令，实现要执行的方法，它通常是“虚”的实现；通常会有接收者，并调用接收者的功能来完成命令要执行的操作。
// (3)接收者(Receiver)：真正执行命令的对象。任何类都可能成为一个接收者，只要能实现命令要求实现的相应功能。
// (4)调用者(Invoker)：要求命令对象执行请求，通常会持有命令对象，可以持有很多的命令对象。这个是客户端真正触发命令并要求命令执行相应操作的地方，也就是说相当于使用命令对象的入口。
// (5)客户端(Client)：命令由客户端来创建，并设置命令的接收者。